import java.util.*;

public class PlusOne {
    public static int[] plusOne(int[] digits) {
        if(digits == null) return null;
        if(digits.length == 0) return null;

        digits = revertList(digits);

        int[] result = new int[digits.length + 1];

        result[0]= digits[0]+1;

        for(int i=1;i<digits.length;i++) {
            result[i]=digits[i];
        }

        for(int i=0;i<result.length - 1;i++) {
            if(result[i]>=10) {
                result[i+1] += (result[i]/10);                
                result[i]=result[i]%10;
            }
        }

        if(result[result.length - 1] == 0){
            for(int i=0;i<digits.length;i++) {
                digits[i]=result[i];
            }

            return revertList(digits);
        }

        return revertList(result);
    }

    public static int[] revertList(int[] array) {

        for(int i=0;i<array.length/2;i++){
            int swap = array[i];
            array[i]= array[array.length - 1 - i];
            array[array.length - 1 - i] = swap;
        }

        return array;
    }
    
    public static void main(String[] args) {
        int[] digits = {9,9,9,9};
        int[] result = plusOne(digits);

        for(int i=0;i<result.length;i++)
            System.out.println(result[i]);
    }
}